gusucode.com > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM源码程序 > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM\Regression_SVM_SteveGunn.m

    % 支持向量机用于函数拟合 - 必须选择最优参数 p1,C
% 工具箱:SVM_SteveGunn
% 使用平台:Matlab6.5
% 作者:陆振波,海军工程大学
% 欢迎同行来信交流与合作,更多文章与程序下载请访问我的个人主页
% 电子邮件:luzhenbo@sina.com
% 个人主页:luzhenbo.88uu.com.cn

clc
clear
close all

%---------------------------------------------------
% 产生训练样本与测试样本

n1 = 1:2:200;
x1 = sin(n1*0.1);

n2 = 2:2:200;
x2 = sin(n2*0.1);

xn_train = n1;          % 训练样本,每一列为一个样本
dn_train = x1;          % 训练目标,行向量

xn_test = n2;           % 测试样本,每一列为一个样本
dn_test = x2;           % 测试目标,行向量

%---------------------------------------------------
% 参数设置

trnX = xn_train';
trnY = dn_train';
tstX = xn_test';
tstY = dn_test';

global p1 ;
ker = 'rbf';        % 核函数 k = exp(-(u-v)*(u-v)'/(2*p1^2))
p1 = 3;             % p1 is width of rbfs (sigma)
C = 10;             % 折衷系数

%---------------------------------------------------
% 训练与测试

[nsv,beta,bias] = svr(trnX,trnY,ker,C);         % 训练
tstY1 = svroutput(trnX,tstX,ker,beta,bias);     % 测试

%---------------------------------------------------
% 结果作图

plot(1:length(tstY),tstY,'r+:',1:length(tstY1),tstY1,'bo:')
title('+为真实值,o为预测值')